/* ==========================================================================
   TestAgent Copilot Chat Engineering Theme
   Compatible with VS Code Webview UI Toolkit
   ========================================================================== */

/* ==========================================================================
   全局：更接近 Copilot Chat 的工程风布局
   ========================================================================== */

html, body {
    background: var(--vscode-editor-background);
    color: var(--vscode-foreground);
    font-family: var(--vscode-font-family);
    font-size: var(--vscode-font-size);
}

/* 全局 Panel 阴影体系 */
.panel,
.tool-result-card,
.dialog-container {
    box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important;
}


/* ==========================================================================
   顶部内容区（消息区）
   ========================================================================== */

#display-area {
    padding: 20px 28px;
    background: var(--vscode-editor-background);
}

#messages-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 8px 60px 8px;
}

/* 用户发送 */
.msg-user {
    max-width: 75%;
    padding: 12px 16px;
    border-radius: 6px;
    background: var(--vscode-button-background);
    color: var(--vscode-button-foreground);
    border: 1px solid var(--vscode-panel-border);
}

/* AI 回复（工程风） */
.msg-assistant {
    max-width: 85%;
    padding: 12px 16px;
    border-radius: 6px;
    background: var(--vscode-editorWidget-background);
    color: var(--vscode-foreground);
    border: 1px solid var(--vscode-panel-border);
}

/* 系统提示 */
.msg-system {
    text-align: center;
    opacity: 0.8;
    margin: 10px 0;
}

/* loading 动画 */
.msg.loading {
    opacity: 0.6;
    animation: pulse 1.5s infinite;
}
@keyframes pulse { 50% { opacity: 0.4; } }

/* welcome */
.welcome-message h3 {
    font-size: 22px;
    font-weight: 600;
}

/* ==========================================================================
   下半部控制区（Command Bar / Method Selector / Input Bar）
   ========================================================================== */

#control-area {
    background: var(--vscode-editor-background);
    border-top: 1px solid var(--vscode-panel-border);
    padding: 16px 20px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ==========================================================================
   Command Bar：Copilot 工具栏风格
   ========================================================================== */

#command-bar {
    display: flex;
    gap: 10px;
}

#command-bar vscode-button::part(control) {
    width: 30px !important;
    height: 30px !important;
    background: var(--vscode-editor-background);
    border: 1px solid var(--vscode-widget-border);
    border-radius: 4px !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

#command-bar vscode-button::part(control):hover {
    background: var(--vscode-toolbar-hoverBackground);
}

/* ==========================================================================
   方法选择器：工程风扁平样式
   ========================================================================== */

#method-dropdown-button {
    padding: 6px 10px !important;
    background: var(--vscode-input-background) !important;
    border: 1px solid var(--vscode-input-border) !important;
    border-radius: 4px !important;
}

.method-dropdown {
    background: var(--vscode-dropdown-background);
    border: 1px solid var(--vscode-dropdown-border);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25) !important;
    padding: 4px 0;
}

/* 选项 */
.method-option {
    padding: 10px 14px !important;
    border-bottom: 1px solid var(--vscode-panel-border);
}

.method-option:hover {
    background: var(--vscode-list-hoverBackground);
}

/* ==========================================================================
   已选方法区域（附件区风格升级）
   ========================================================================== */

.attachments-container {
    background: var(--vscode-editorWidget-background) !important;
    border: 1px solid var(--vscode-panel-border) !important;
    padding: 10px 14px !important;
    border-radius: 6px !important;
}

.attachment-item {
    border-radius: 4px !important;
    background: var(--vscode-badge-background);
    padding: 4px 8px !important;
}

/* ==========================================================================
   输入区（最重要：Copilot 主输入框风格）
   ========================================================================== */

#input-bar {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 输入框（大号、阴影、工程感） */
#user-input {
    background: var(--vscode-input-background) !important;
    border: 1px solid var(--vscode-input-border) !important;
    border-radius: 6px !important;
    padding: 10px 12px !important;
    min-height: 60px;
    font-size: 14px;
}

#user-input:focus-within {
    border-color: var(--vscode-focusBorder) !important;
    outline: 1px solid var(--vscode-focusBorder) !important;
}

/* ==========================================================================
   主按钮：Copilot 风格按钮
   ========================================================================== */

#send-button {
    min-width: 140px !important;
    flex-shrink: 0 !important;
}

#send-button::part(control) {
    height: 40px !important;
    padding: 0 16px !important;
    border-radius: 6px !important;
    background: var(--vscode-button-background) !important;
    color: var(--vscode-button-foreground) !important;
    border: 1px solid var(--vscode-button-border);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

#send-button::part(control):hover {
    background: var(--vscode-button-hoverBackground) !important;
}

/* ==========================================================================
   工具卡片 / 执行结果卡片（全面 Copilot 工程风）
   ========================================================================== */

.tool-result-card {
    background: var(--vscode-editorWidget-background) !important;
    border: 1px solid var(--vscode-panel-border) !important;
    border-radius: 6px !important;
    margin-bottom: 14px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important;
}

.tool-result-card-header {
    background: var(--vscode-editor-background) !important;
    border-bottom: 1px solid var(--vscode-panel-border) !important;
    padding: 12px 16px !important;
}

.tool-result-card-header:hover {
    background: var(--vscode-list-hoverBackground) !important;
}

.tool-result-card-body pre {
    background: var(--vscode-textCodeBlock-background) !important;
}

/* ==========================================================================
   工具下拉 / 工具详情 / Dialog —— Copilot 统一灰色系
   ========================================================================== */

.dialog-container {
    background: var(--vscode-editorWidget-background) !important;
    border: 1px solid var(--vscode-panel-border) !important;
    border-radius: 8px !important;
}

/* 参数面板 */
.tool-parameter-form {
    background: var(--vscode-input-background) !important;
    border: 1px solid var(--vscode-panel-border) !important;
}

/* ==========================================================================
   通用标题 + 排版重塑
   ========================================================================== */

h3, h4 {
    margin: 0;
    font-weight: 600;
    color: var(--vscode-foreground);
}

/* 统一圆角体系 */
* {
    --radius-small: 4px;
    --radius-medium: 6px;
}

/* ==========================================================================
   End of Copilot Theme
   ========================================================================== */

/* Force inline layout for labels inside vscode-button */
vscode-button::part(control),
vscode-button::part(label),
vscode-button::part(text),
vscode-button span,
vscode-button .control,
vscode-button * {
    white-space: nowrap !important;
}

/* 仅限制 slotted 内容的 white-space，避免挤压箭头 */
vscode-button span,
vscode-button .control {
    white-space: nowrap !important;
}

/* =========================================================
   修复 1：按钮内容布局（选择方法 / 开始生成）
   ========================================================= */

/* 恢复按钮内部使用正常 flex 布局，允许内容自动分配空间 */
vscode-button::part(control) {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;

    /* 让图标、文字、箭头按正常顺序排布 */
    white-space: nowrap !important;
}

/* =========================================================
   修复 2：“选择方法”按钮文字与箭头重叠
   ========================================================= */
#method-dropdown-button::part(control) {
    justify-content: flex-start !important;   /* 左对齐内容 */
    padding: 0 12px !important;
    gap: 8px !important;
}

/* 让箭头永远靠右 */
#method-dropdown-button .dropdown-caret {
    margin-left: auto !important;
}

/* =========================================================
   修复 3：“开始生成”按钮内容未垂直居中
   ========================================================= */
#send-button::part(control) {
    height: 40px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important; /* 保证图标与文字垂直居中 */
}

/* 内部 codicon 保持垂直居中 */
#send-button .codicon {
    line-height: 1 !important;
    display: flex;
    align-items: center;
}

/* =========================================================
   A. “选择方法”按钮：箭头在最左侧 + 图标 + 文本横排
   ========================================================= */

/* 按钮内部使用 flex 布局 */
#method-dropdown-button::part(control) {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 0 12px !important;
    white-space: nowrap !important;
}

/* 让箭头永远排在最左侧 */
#method-dropdown-button .dropdown-caret {
    order: 0 !important;
    margin-right: 4px !important;
}

/* 方法图标排在第二位 */
#method-dropdown-button .codicon {
    order: 1 !important;
}

/* 文本排在第三位 */
#method-dropdown-button span:not(.codicon):not(.dropdown-caret) {
    order: 2 !important;
    white-space: nowrap !important;
}

/* =========================================================
   B. “开始生成”按钮：图标与文字完美居中
   ========================================================= */

#send-button::part(control) {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    height: 40px !important;
    padding: 0 16px !important;
    line-height: 1 !important;
}

/* codicon 居中对齐，不上下偏 */
#send-button .codicon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

/* 文本正常横排 */
#send-button span:not(.codicon) {
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
}


